package map;
/*
* java.util.Map
* Map 体现的结构试试一个多行两列的表格,其中左列成为key,右列成为value.
* Map 总是以键值对(key - value 对)的形式保存元素, 并且总是根据Key获取
* 对应的value
* Map 有一个要求. 就是key不允许重复(equals比较)
* 常用实现类:
* java.util.HashMap :散列表, 使用散列算法实现的Map .当今查询最快速度最快的数据结构
*
* */

import java.util.HashMap;
import java.util.Map;

public class MapDemo1 {
    public static void main(String[] args) {
        Map<String,Integer> map= new HashMap<>();
        /*
         V put (K , k,V, v)
         将给定的一组键值对存入到Map当中
         由于Map 要求key 不允许重复 ,因此若使用重复的key 存入value
         时为替换value操作,此时方法方法返回的为被替换的value,否则是null
         
         */
        Integer value =map.put("语文",99);
        map.put("语文",99);
        map.put("数学",98);
        map.put("英语",97);
        map.put("物理",96);
        map.put("化学",95);
        map.put("生物",94);

        System.out.println(map);
        //替换英语对应的值
        value = map.put("英语", 55);
        System.out.println(map);
        System.out.println(value);
        /*
          v get(Object key)
          根据给定的key 获取对应的value  如果给定的key在Mao中不存在则返回值为null
         */
        value =map.get("生物");
        System.out.println("生物"+value);
        value =map.get("体育");
        System.out.println("体育:"+value);
        /*
        返回当前Map 的元素个数,一组键对第一个元素

         */
        int size = map.size();
        System.out.println("size:"+size);
        /*
        V remove (Object key)
        删除给定的key对应的键值对.并返回值为这个key对应的value
         */

       value= map.remove("数学");
        System.out.println(map);
        System.out.println(value);
        /*
         boolean containsKey(Object key)
         判断当前Map 是否包含给定的key

         boolean  containsValue(Object value)
         判断当前Map  是否包含给定的value
         */
        boolean ck = map.containsKey("语文");
        boolean cv=  map.containsKey(55);
        System.out.println("包含key:"+ck);
        System.out.println("包含value:"+cv);

    }
}
